uniform sampler2D image; 
uniform vec2 screenSize;

  
void main(void) { 
  
  float depth, minDepth=1.0; 
  vec3 result= vec3(0.0);	
  int i; 

  float alpha= texture2D(image, gl_FragCoord.xy/screenSize).a;

  vec2 offsets[25];
  
  offsets[0]=   vec2(-2.0, -2.0);
  offsets[1]=   vec2(-1.0, -2.0);
  offsets[2]=   vec2( 0.0, -2.0);
  offsets[3]=   vec2( 1.0, -2.0);
  offsets[4]=   vec2( 2.0, -2.0);
  offsets[5]=   vec2(-2.0, -1.0);
  offsets[6]=   vec2(-1.0, -1.0);
  offsets[7]=   vec2( 0.0, -1.0);
  offsets[8]=   vec2( 1.0, -1.0);
  offsets[9]=   vec2( 2.0, -1.0);	
  offsets[10]=  vec2(-2.0,  0.0);
  offsets[11]=  vec2(-1.0,  0.0);
  offsets[12]=  vec2( 0.0,  0.0);
  offsets[13]=  vec2( 1.0,  0.0);
  offsets[14]=  vec2( 2.0,  0.0);
  offsets[15]=  vec2(-2.0,  1.0);
  offsets[16]=  vec2(-1.0,  1.0);
  offsets[17]=  vec2( 0.0,  1.0);
  offsets[18]=  vec2( 1.0,  1.0);
  offsets[19]=  vec2( 2.0,  1.0);
  offsets[20]=  vec2(-2.0,  2.0);
  offsets[21]=  vec2(-1.0,  2.0);
  offsets[22]=  vec2( 0.0,  2.0);
  offsets[23]=  vec2( 1.0,  2.0);
  offsets[24]=  vec2( 2.0,  2.0);


  //Gaussian filter kernel
  float gaussian[25];
  
  gaussian[0]=   2.0;
  gaussian[1]=   4.0;
  gaussian[2]=   5.0;
  gaussian[3]=   4.0;
  gaussian[4]=   2.0;
  gaussian[5]=   4.0;
  gaussian[6]=   9.0;
  gaussian[7]=   12.0;
  gaussian[8]=   9.0;
  gaussian[9]=   4.0;	
  gaussian[10]=  5.0;
  gaussian[11]=  12.0;
  gaussian[12]=  15.0;
  gaussian[13]=  12.0;
  gaussian[14]=  5.0;
  gaussian[15]=  4.0;
  gaussian[16]=  9.0;
  gaussian[17]=  12.0;
  gaussian[18]=  9.0;
  gaussian[19]=  4.0;
  gaussian[20]=  2.0;
  gaussian[21]=  4.0;
  gaussian[22]=  5.0;
  gaussian[23]=  4.0;
  gaussian[24]=  2.0;


  for(i=0; i<25; i++){
    result+= gaussian[i]*texture2D(image, (gl_FragCoord.xy+offsets[i])/screenSize).rgb;

  } 

  if(alpha!=0.0){
    gl_FragColor= vec4(result/159.0, alpha);
  }
  else discard;


  //gl_FragColor= vec4(texture2D(contours, (gl_FragCoord.xy)/screenSize).rgb, 1.0);
}